#ifndef _TYPES_H_
#define _TYPES_H_

#include <stdint.h>

struct list_head 
{
	struct list_head *next, *prev;
};

typedef uint8_t  u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;
typedef int8_t   s8;
typedef int16_t  s16;
typedef int32_t  s32;
typedef int64_t  s64;

#undef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)

#define container_of(ptr, type, member)	(type *)((char *)ptr - offsetof(type,member))

#endif